//function loadXMLDoc()
//{
//  var xmlhttp;
//  var str;
//   if (window.XMLHttpRequest)
//   {// code for IE7+, Firefox, Chrome, Opera, Safari
//       xmlhttp=new XMLHttpRequest();
//   }
//   else
//   {// code for IE6, IE5
//       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
//   }
//   xmlhttp.onreadystatechange=function()
//   {
//       if (xmlhttp.readyState==4 && xmlhttp.status==200)
//       {
//           str = xmlhttp.responseText;//得到服务器响应
//			 alert(str);
//         // str='["1.js","app.js","app11.js","express_server - 副本 (2).js","express_server - 副本.js","express_server.js","favicon.ico","FindFile.js","formParser.js","hello.js","http.js","httpServer.js","index.html","index.js","index2.html","linshi/","mime.js","mine.js","node_modules/","public/","requestHandlers.js","router.js","server.js","upload/","upload.html","upload.js","www/"]';
//			
//			
//			// json 排序
//			
//			strToJosn(str);
//			
//			//json处理方式
//			DirPa(str);
//			// alert(obj.BlockList.length);
//			// for(var i = 0; i < obj.BlockList.length; i++) 
//			// {
//			// 	  filePath = obj.BlockList[i];
//			// 	  var arr = filePath.split('/');
//			// 	  var len = arr.length;
//			// 	  return arr[len-1];
//			// }
//          //document.getElementById("myDiv").innerHTML=str;
//       }
//  }

function strToJosn(str) {
	// str转换为json 对象
	//				var obj = JSON.parse(str);
	// 第一次 直接遍历出所有一级目录的的文件 并且创建对应的目录的
	var treejosn = "";

	//json数据文件获取信息。
	var vfiles = str.Msg;
	var j = 1;
	var bHas = false; // 记录是否包含有点
	var id = 0;
	//一个总的数组，最大的
	var root={
		name:"root",
		children:[]
		}
		var file2 =	{ id:1, pId:0, name:"root", open:true,dir:0,isParent:true};	
		root.children.push(file2);
		var Gid=1;
		for(var i = 0;i < vfiles.length;i++)
		{
			var vname = vfiles[i].name;
			var arr = vname.split('/');
			var len = arr.length;
			// 
			var curNode = root;
		
			if( len  == 2 )// 最后一个 那么就是文件名称 
			{
				var file =	{ id:1, pId:1, name:"父节点1 - 展开", dir:0,url:""};
				file.id = ++Gid;
				file.pId = 1;
				file.name = arr[1];				
				file.path= arr[0];
				file.dir = len -1;
				file.url = vfiles[i].url;
				file.Size = vfiles[i].Size;
				file.Date = vfiles[i].Date;
				root.children.push(file);
			}
			else
			{
				//var dir  =  {id:111, pId:11, name:"叶子节点111",open:true,dir:1};
				var pid = 1; // 根节点
				for(var j = 1; j< len - 1; j++)
				{
					
					// 查询是否目录目录已经被添加	
					var bFind = false;					
					for(var ndir = 0; ndir < root.children.length; ndir++)
					{
						if(root.children[ndir].dir == j )
						{
							if(root.children[ndir].name == arr[j]) // 已经有这个阶段 就不需要添加了的
							{
								bFind = true;
								pid = root.children[ndir].id;
								if(j+1 == len - 1 ){ // 最后一个数组 是文件名称 
									var file =	{ id:1, pId:1, name:"父节点1 - 展开", dir:0};
									file.id = ++Gid;
									file.pId = dir.id;
									file.name = arr[j+1];
									var temppath ='';
									for(var k =0; k< j +1; k++)
									{
										temppath += arr[k] ;
										temppath += '/';
									}
									dir.path= temppath;
									file.path= temppath;
									file.dir = j;
									file.url = vfiles[i].url;
									file.Size = vfiles[i].Size;
									file.Date = vfiles[i].Date;
									root.children.push(file);
								}
								break;
							}
						}
					}
					if(!bFind) // 需要新增节点数据 
					{
						var dir  =  {id:111, pId:11, name:"叶子节点111",open:false,dir:1,url:"",path:""};
						dir.id = ++Gid;
						dir.pId = pid;
						dir.name = arr[1];						
						dir.dir = j;
						var temppath ='';
						for(var k =0; k< j; k++)
						{
							temppath += arr[k] ;
							temppath += '/';
						}
						dir.path= temppath;
						root.children.push(dir);
						// 如果是倒数文件名称前一级目录的时候 需要置一下当前父节点
						if(j+1 == len - 1 ){ // 最后一个数组 是文件名称 
							var file =	{ id:1, pId:1, name:"父节点1 - 展开", dir:0};
							file.id = ++Gid;
							file.pId = dir.id;
							file.name = arr[j+1];
							
							var temppath ='';
							for(var k =0; k< j+1; k++)
							{
								temppath += arr[k] ;
								temppath += '/';
							}
							file.path= temppath;
							file.dir = j;
							file.url = vfiles[i].url;
							file.Size = vfiles[i].Size;
							file.Date = vfiles[i].Date;
							root.children.push(file);
						}
					}
				}
			}
			
		}	
		
	var setting = {
		callback: {
			beforeClick: onclick
		},
		data: {
			simpleData: {
				enable: true
			}
		}
	};
	//此时所有的节点就完成啦
//	$.fn.zTree.init($("#treeDemo"), setting, root.children);
	//				var vet = JSON.stringify(root.children);
		IDMark_Ul = "_ul",
		IDMark_A = "_a";
		function removeHoverDom(treeId, treeNode) {
			if (treeNode.parentTId && treeNode.getParentNode().id!=1) return;			
		}
		function addDiyDom(treeId, treeNode) {
			//if (treeNode.parentNode && treeNode.parentNode.id!=2) return;
			var aObj = $("#" + treeNode.tId + IDMark_A);
			var str = treeNode.url;
			if(str != undefined )
			{
				if ($("#diyBtn_"+treeNode.id).length>0) return;
				var s = str.toString();
				var editStr = "<span id='diyBtn_t" +treeNode.id+ "'>"+treeNode.Date +"</span>"  // 添加了文本的
				+ "<a id='diyBtn1_" +treeNode.id+ "' onclick='writeFile(\""+s +"\",\""+treeNode.path +"\");' style='margin:0 0 0 50px;'>下载</a>" ;
				aObj.after(editStr);
			} 
		}
		function addHoverDom(treeId, treeNode) {
			if (treeNode.parentNode && treeNode.parentNode.id!=1) return;	
		}
		var setting = {
			callback: {
				beforeClick: onclick
			},
			view: {
				addHoverDom: addHoverDom,
				removeHoverDom: removeHoverDom,
				addDiyDom: addDiyDom
			}
		};
		var vet = JSON.stringify( root.children );
		$(document).ready(function(){
			$.fn.zTree.init($("#treeDemo"), setting, root.children);
		});
		var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
		var nodes = treeObj.transformTozTreeNodes(root.children);
		var settingview = {
			view: {
				addHoverDom: addHoverDom,
				removeHoverDom: removeHoverDom,
				addDiyDom: addDiyDom
			}
		};
		$(document).ready(function(){
			$.fn.zTree.init($("#treeDemo"), settingview, nodes);
		});
}

//获取选择的值。
$(document).ready(function() {
	$("#container2").change(function() {
		var type = $(this).children('option:selected').val();
		getFile(type);
	});

});
//请求数据
function getFile(type) {
	$.ajax({
//		url: 'http://192.168.1.157:8081/file_query?name=&path=' + type,
url: 'js/1234.json',
		dataType: 'json',
		success: function(msg) {
			strToJosn(msg);
		}
	});
}
function upLoadFile(name, path) {
	//'http://192.168.1.18/qdfile/file_upload?name=bugzip' + name + '&path=' + path
	$.ajax({
		url: 'http://192.168.1.18/qdfile/file_upload?name=bugzip' + name + '&path=' + path,
		dataType: 'json',
		success: function(msg) {
			alert(msg.Msg);
		}
	});
}
//			
function onclick(id, treeNode) {
	//				alert(treeNode.name);
	var str = treeNode.name;
	var fileName = str.split("--")[0];
	$("#edit").val(fileName);
						//			点击文件时赋值给下载文件input的value 
							$("#fileName").val(fileName);
							//			点击文件时赋值给删除 文件input的value 
							$("#deleteFile").val(fileName);
}
//上传文件		
function GetFileUp() {
	//js控制文件选择框打开
	$("#file").click();
	//文件选择框关闭时会执行这个函数
	$("#file").change(function() {
		//这个时候判断是否选择了文件，如果选择了文件那么value肯定有值的
		if($(this).val() == '') {
			//          	alert('meiyouxuanzewenjian');
			//空意味着没有选择文件，，，这里不提交表单
			return false;
		} else {
			//          		alert($(this).val());
			//不为空即选择了文件            这里提交表单
			$("#form1").submit();
			return true;
		}
	});
}

////回调事件
//			var setting = {
//				callback: {
//					//test是一个函数
//					beforeClick: test
//				},
//				view: {
//
//					nameIsHTML: true
//				},
//				data: {
//					//简单数据格式。开启。两种数据格式。一种是简单的，一种的是标准的。现在用的是简单的
//					simpleData: {
//						//开启
//						enable: true
//					}
//				}
//			};
////获取json数据	
//			$(document).ready(function() {
//				//ajax进行get访问后台json数据
//				$.ajax({
//					url: 'js/1234.json',
//					dataType: 'json',
//					success: function(msg) {
//						//msg是访问成功时返回来的数据，就是json字符串{"Reslut":"0",这种
//						var data = msg.Msg;
//						//"Msg": []因为这个属性是一个数组。所以需要for遍历
//						//肯定在这里解决了
//						for(var i = 0; i < data.length; i++) {
//							var len = data[i].name.split("/").length;
//							//新建一个对象，，格式很重要。Ztree指定了两种数据格式。其种这个是简单的格式。包含三个属性 id,pId,name
//							if( len> 1) {
//								//    /123/121.txt
//								//    /123/234/234.txt
//								var test = new Object();
//								test.id = i + 1;
//								test.pId = 0; //表明该ID的父节点是谁，因为都是一级目录。所以是0.如果是2级目录。那么他的pID就是上一个对象的id
//								//这里显示的是节点的名称。想显示什么就在这里修改
//								test.name = "<span style='color:blue;'>" + data[i].name + "--Date:</span>" + data[i].Date + "--Size:" + data[i].Size;
//								Array[i] =test;
//
//							}else if(len >2){
//								var test = new Object();
//								test.id = i + 1;
//								test.pId = 0; //表明该ID的父节点是谁，因为都是一级目录。所以是0.如果是2级目录。那么他的pID就是上一个对象的id
//								//这里显示的是节点的名称。想显示什么就在这里修改
//								test.name = "<span style='color:blue;'>" + data[i].name + "--\t\t\t\t\t\tDate:</span>" + data[i].Date + "--Size:" + data[i].Size;
//								Array[i] = test; //插入数组
//							} else {
//								var test = new Object();
//								test.id = i + 1;
//								test.pId = 0; //表明该ID的父节点是谁，因为都是一级目录。所以是0.如果是2级目录。那么他的pID就是上一个对象的id
//								//这里显示的是节点的名称。想显示什么就在这里修改
//								test.name = "<span style='color:blue;'>" + data[i].name + "--\t\t\t\t\t\tDate:</span>" + data[i].Date + "--Size:" + data[i].Size;
//								Array[i] = test; //插入数组
//							}
//
//						}
//						//				设置给zTree插件
//						$.fn.zTree.init($("#treeDemo"), setting, Array);
//					}
//				});
//			});

//把选择的文件路径显示到input
//新建一个数组。在遍历的时候需要用到
//						var Array = [];
//						//id是节点的id，，treeNode是节点的属性，可以获取节点的name
//						function test(id, treeNode) {
//							//			alert(treeNode.name);
//							//			点击文件时赋值给目录input的value 
//							var str = treeNode.name;
//							var fileName = str.split("--")[0];
////							$("#edit").val(fileName);
//							//			点击文件时赋值给下载文件input的value 
//							$("#fileName").val(fileName);
//							//			点击文件时赋值给删除 文件input的value 
//							$("#deleteFile").val(fileName);
//						}
//
//			//上传文件		
//			function GetFile() {
//				//js控制文件选择框打开
//				$("#file").click();
//				//文件选择框关闭时会执行这个函数
//				$("#file").change(function() {
//					//这个时候判断是否选择了文件，如果选择了文件那么value肯定有值的
//					if($(this).val() == '') {
//						//          	alert('meiyouxuanzewenjian');
//						//空意味着没有选择文件，，，这里不提交表单
//						return false;
//					} else {
//						//          		alert($(this).val());
//						//不为空即选择了文件            这里提交表单
//						$("#form1").submit();
//						return true;
//					}
//				});
//			}